Base Pointer
別名など:
BP
, ベースポインタ
実行中の関数が使用しているスタック領域の底(ベース)を示す
レジスタ
。
Stack Pointer
はpush/popによって上下するがBase Pointerより大きくなることはない。
Base Pointerで基準を決めておくことで
[ebp + 4]
のようにオフセットで一対一に対応できる。当たり前だがStack Pointerだと、pushやpopをするたびにオフセットが変わってしまう。
関数ごとのスタック領域とBase Pointerのイメージ
https://scrapbox.io/files/62bd372d3c861b001d69856d.png
引用:
https://note.com/nekotricolor/n/n2a247c808275